Assincrono significa que o processo de request de dados do servidor é feito no background, ou sem, precisar dar um post na pagina atual mas sim fazendo um request assincrono para o servidor e o resultado desse request é exibido na página web via javascript, getElementById, innerHTML.
Note que quando disse que o recurso não dá um post ou submit na página atual é verdade mas pelo método httprequest é possível enviar um post(enviando dados para o servidor) ou get (recuperando a resposta do servidor) como um processo interno da página corrente.
Utilizamos o AJAX para fazer requisições assincronas ao servidor web e colocar os dados retornados dentro da página web via innerHTML ou coisa parecida.
O método utilizado para acessar o servidor web é o XMLHttpRequest
O HttpRequest tem 2 parametros :
• O primeiro é método que pode ser GET ou POST.
O método de acesso é GET quando apenas desejamos buscar algum conteúdo do servidor sem precisar passar nenhum dado a ele.
O método POST é utilizado quando precisamos enviar informações ao servidor para que ele nos mande a resposta correta.
Portanto, sempre no método post passaremos dados ao servidor.
• O segundo é a url do sevidor para enviar a requisição.
Resumindo e destacando utilizamos o verbo :
GET para receber ou fazer o download de um recurso sempre no sentido servidor web para o browser.
POST para enviar dados junto com o request do servidor sempre no sentido browser para servidor web para browser retornando dados que podem ser desde puro texto até XML ou JSON.
Biblioteca necessária ao AJAX
Não existe nada, nenhuma biblioteca é necessária.
O AJAX é um recurso nativo do web browser e não precisa de mais nada para funcionar.
Importante : O método post só funciona para o envio de dados para servidores web (asp, php, etc.).
Não é possivel dar um post para uma página html simples pois o mecanismo de recepção da informação precisa de um servidor web
Envio da Solicitação(Get):
Abaixo um exemplo de utilização com JSON - Envio da Solicitação(Request) de um arquivo texto json e a recepção da resposta ou do erro:
/* Retornando um objeto json */
var MinhaRequisicao2 = XMLHttpRequest();
MinhaRequisicao2.open('GET', 'http://arq.json');
MinhaRequisicao2.onload = function () { /* define o que fazer quando o dadochegar do servidor*/
var dados = JSON.parse(MinhaRequisicao2.responseText);
console.log(dados[0]); Vai exibir o objeto inteiro
console.log(dados[0].name); exibe 'Meowsy'
};
MinhaRequisicao2.send(); envia a solicitação ao servidor web
.done(function(msg){ //Recepção da resposta do servidor-ok
$("#resultado").html(msg);
})
.fail(function(jqXHR, textStatus, msg){ // em caso de erro
alert(msg);
});
O método .done é automaticamente executado quando o response do servidor retorna ao browser.
O método .fail é executado em caso de erro na resposta do servidor como 404-pagina não encontrada.